<template>
  <!-- 补全必要的 props -->
  <BaseSingleFormCont
    api-module="user"
    api-fields="user"
    :show-Search="hasPermission('Search')"   
    :show-add="hasPermission('Add')"  
    :show-edit="hasPermission('edit')"  
    :show-delete="hasPermission('delete')" 
    v-model:formData="formData"
    v-model:searchFormData="searchFormData"
    v-model:disabled-edit="disabledEdit"
    v-model:disabled-delete="disabledDelete"
    v-model:selectedId="selectedId"
    :list-query="listQuery"     
    @reload="loadData"
    @add="handleAdd"
    @edit="handleEdit"
    @search="handleSearch"
  />
</template>

<script lang="ts" setup>
import { ref ,watch} from 'vue'
import BaseSingleFormCont from '@/components/baseSingleFormCont.vue'
import { createQueryParams } from '@/api/types'
/* ---------- 权限 ---------- */
import { usePermission } from "@/utils/permissionUtils";
/* ---------- 权限---------- */
const hasPermission = usePermission();

const disabledEdit = ref(true)   // 初始值
const disabledDelete = ref(true) // 初始值
const selectedId = ref<string | number | null>(null) // 初始值


/* 查询参数（排序、分页、过滤） */
const queryNoDeleteMark = 0 //查询条件
const listQuery = ref(
  createQueryParams({
    data: {deletion_mark: queryNoDeleteMark},               // 过滤条件
    sort: ['-create_date'] // 默认倒序

  })
)

const formData = ref<any>({}); // Form 数据
const searchFormData=ref<any>({});
/* 保存逻辑：父层自己调用后端 */
const saveUser = (row: any) => {
  // 实现你的保存逻辑
}


const handleAdd = (row?: any) => {
  // ① 先清空（或赋予初始值）
  formData.value = { 
    sort_order: 10,          // 如果后端要求必填
    status:true
    // 其他字段默认值...
  }

  // ② 再告诉子组件“我要新增”
  console.log('父层收到新增行:', row)
  saveUser(row)   // 这里你可以把空对象传过去，也可以什么都不传
}

const handleEdit = (row: any) => saveUser(row)

/* ---------- 查询--------- */
const handleSearch= () =>{
searchFormData.value = { status: true }
  
}

/* 删除或刷新加载数据 */
const loadData = () => {
  /* 子组件会自动重新加载数据 */
}

watch(
  selectedId, id => console.log('父层收到选中行 id:', id)
)
</script>